home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Micro on the Apple Volume 2 (1981)(Micro Ink).zip / Micro on the Apple Volume 2 (1981)(Micro Ink).do / AMPERSORT DEMO.bas < prev    next >
BASIC Source File  |  1996-12-24  |  3KB  |  95 lines

  1. 10  REM  ************************
  2. 20  REM  *                      *
  3. 30  REM  *     AMPER-SORT       *
  4. 40  REM  *     ALLEN HILL       *
  5. 45  REM  *                      *
  6. 50  REM  *    AMPERSORT DEMO    *
  7. 55  REM  *                      *
  8. 60  REM  *  COPYRIGHT (C) 1981  *
  9. 70  REM  *   MICRO INK, INC.    *
  10. 80  REM  * CHELMSFORD, MA 01824 *
  11. 90  REM  *  ALL RIGHTS RESERVED *
  12. 100  REM *                      *
  13. 110  REM ************************
  14. 1000  GOTO 10000
  15. 1050  REM  CHARACTER SORT
  16. 1060 CH$ = "ABCDWXYZ":L =  LEN(CH$) -1
  17. 1070 N% = 8
  18. 1080  DIM AB$(N%)
  19. 1090  FOR I = 0 TO N%
  20. 1100 C$ =  MID$ (CH$, INT( RND(1) *L) +1,1)
  21. 1110 B$ =  MID$ (CH$, INT( RND(1) *L) +1,1)
  22. 1120  FOR J = 1 TO 3
  23. 1130 C$ = C$ +C$:B$ = B$ +B$
  24. 1140  NEXT J
  25. 1150 AB$(I) = B$ +C$
  26. 1160  NEXT I
  27. 1170  GOSUB 1240
  28. 1180  REM  SORT HALF ASCENDING
  29. 1190  REM  SORT HALF DESCENDING
  30. 1200  & SRT#(AB$,0,N%,1,8,A,9,16,D)
  31. 1210  GOSUB 1260
  32. 1220  GOTO 11000
  33. 1230  REM  PRINT ROUTINE
  34. 1240  PRINT "    BEFORE"
  35. 1250  GOTO 1270
  36. 1260  PRINT "    AFTER": PRINT "ASCEND  DESCEND"
  37. 1270  FOR I = 0 TO N%
  38. 1280  PRINT AB$(I): NEXT I: RETURN 
  39. 2000  REM  INTEGER SORT 
  40. 2010 N% = 8
  41. 2020  DIM IN%(N%)
  42. 2030  FOR I = 0 TO N%
  43. 2040 IN%(I) = 7500 - INT( RND(1) *15000)
  44. 2050  NEXT I
  45. 2060  GOSUB 2120
  46. 2070  REM    SORT
  47. 2080  & SRT#(IN%,0,N%)
  48. 2090  GOSUB 2130
  49. 2100  GOTO 11000
  50. 2110  REM  PRINT ROUTINE  
  51. 2120  HTAB 10: PRINT "BEFORE": GOTO 2140
  52. 2130  HTAB 10: PRINT "AFTER"
  53. 2140  FOR I = 0 TO N%
  54. 2150  PRINT IN%(I): NEXT I: RETURN 
  55. 3000  REM  FLOATING POINT
  56. 3010 T% = 8
  57. 3020  DIM FP(T%)
  58. 3030  FOR I = 0 TO 8
  59. 3040 FP(I) = 1000 * RND(1) * SIN(I *7.16)
  60. 3050  NEXT I
  61. 3060  GOSUB 3120
  62. 3070  REM  SORT
  63. 3080  & SRT#(FP,0,T%)
  64. 3090  GOSUB 3130
  65. 3100  GOTO 11000
  66. 3110  REM  PRINT ROUTINE
  67. 3120  HTAB 10: PRINT "BEFORE": GOTO 3140
  68. 3130  HTAB 10: PRINT "AFTER"
  69. 3140  FOR I = 0 TO T%
  70. 3150  PRINT FP(I): NEXT I: RETURN 
  71. 9999  REM 
  72. 10000  REM  ** &SORT DEMO **
  73. 10010  REM  SAVE ROOM FOR
  74. 10020  REM  SORT ROUTINE
  75. 10030  HIMEM: 20992: REM  $5200
  76. 10040 D$ =  CHR$(4)
  77. 10050  PRINT D$;"BLOAD AMPERSORT,A$5200"
  78. 10060  REM  SET UP '&' HOOK
  79. 10070  REM  AT $3F5:JMP $5200
  80. 10080  POKE 1013,76: POKE 1014,0: POKE 1015,82
  81. 10090  HOME : CLEAR 
  82. 10100  VTAB 8: HTAB 15: PRINT "SORT DEMO"
  83. 10110  PRINT : HTAB 15: PRINT "SELECTIONS"
  84. 10120  PRINT : HTAB 10: PRINT "1 INTEGER SORT"
  85. 10130  HTAB 10: PRINT "2 FLOATING POINT SORT"
  86. 10140  HTAB 10: PRINT "3 CHARACTER SORT"
  87. 10150  HTAB 10: PRINT "4 EXIT"
  88. 10160  VTAB 17: INPUT "SELECTION ";SE%
  89. 10170  IF SE% <0  OR SE% >4  THEN 10090
  90. 10180  ON SE% GOTO 2000,3000,1050,10190
  91. 10190  END 
  92. 11000  PRINT "HIT ANY KEY TO RETURN TO MENU"
  93. 11010  WAIT  -16384,128
  94. 11020  POKE  -16368,0
  95. 11030  GOTO 10090